// 引入数据模型
const { Parser } = require('jade/lib');
const { populate } = require('../dao/models/moviesModel');
const moviesModel = require('../dao/models/moviesModel');

// 将方法暴露给 routes/movies.js 中调用
module.exports.getMovies = async ( params) => {
    //接收到的params结构
    const {currentPage ,pageSize,type,value} = params
    // 获取所有电影的总条数
    const total = await moviesModel.countDocuments();
    // 算出总页数
    const pages = Math.ceil(total/pageSize)

    // 通过数据模型开始获取数据
    const data = await moviesModel.find({[type]:{$regex:value,$options:'i'}}).populate('type').skip((currentPage-1)*pageSize).limit(pageSize);
    // 将数据返回给 routes/movies.js 文件中
    return {
        code: 1,
        message: '电影数据获取成功',
        data :{
            total,
            pages,
            data
        }
    }
}
module.exports.addMovies = () => {
}

// 新增电影
// params 用来接收 routes 中传递的参数
module.exports.addMovies = async (params) => {
    const result = await moviesModel.create(params);
    if(result) {
        return {
            code: 1,
            message: '电影数据新增成功'
        }
    }
    return {
        code: 0,
        message: '电影数据新增失败'
    }
}

// 删除电影
module.exports.deleteMovies = async (params) => {
    // 删除MongoDS里的电影数据
   const data = await moviesModel.deleteOne(params)
   if (data.deletedCount){
       return {
           code: 1 ,
           message :'电影数据删除成功'
       }
    }
       return {
           code : 0 ,
           message :'电影数据删除失败'
       }
}

// 根据id修改电影
module.exports.getMoviesById = async (params) => {
 const data = await moviesModel.findById(params._id)
 if (data){
    return {
        code: 1 ,
        message :'电影数据获取成功',
        data
    }
 }
    return {
        code : 0 ,
        message :'电影数据获取失败'
    }
}

module.exports.updateMovies = async (params) => {
    const result = await moviesModel.updateOne({_id:params._id},params)
    if (result){
       return {
           code: 1 ,
           message :'电影数据修改成功',
           
       }
    }
       return {
           code : 0 ,
           message :'电影数据修改失败'
       }
   }


